In Cambridge, animal liberation activists break into a medical research laboratory with the intent of freeing captive chimpanzees. They are interrupted by a scientist (David Schneider) who desperately warns that the chimps are infected with "Rage," a highly contagious virus that is spread through blood and saliva. Ignoring the scientist, the activists release the chimpanzees. One of the chimps attacks an activist and immediately infects her, leading her to infect everyone else present.
Twenty-eight days later, in London, Jim (Cillian Murphy), a bicycle courier, awakens from a coma in St Thomas' Hospital. He finds the hospital — and the city — deserted, with signs of catastrophe everywhere. Jim wanders into a church, where he is spotted and pursued by people infected by Rage. He is rescued by Selena (Naomie Harris) and Mark (Noah Huntley), who throw Molotov cocktails at the "Infected", resulting in the explosion of a petrol station. At their hideout in the London Underground, Selena and Mark explain that a blood-borne, rage-inducing virus spread uncontrollably among the populace, resulting in societal collapse. They claim that infection has been reported in Paris and New York City as well, indicating that the plague has spread.
The next morning, Selena and Mark accompany Jim to his parents' house in Deptford, where he discovers that they have committed suicide. That night, two Infected see a candle Jim lights in the kitchen and attack. Mark is badly bitten, and Selena quickly kills him, later explaining to Jim that the virus overwhelms its victims in no more than thirty seconds. This necessitates the immediate killing of people who may have been infected. She also assures him that, should he become infected, she would kill him "in a heartbeat." At Balfron Tower, they discover two more survivors — Frank (Brendan Gleeson), a cab driver, and his teenage daughter, Hannah (Megan Burns) — and are invited to spend the rest of the night with them.
Frank informs them the next day that their supplies, particularly water, are dwindling; he plays them a pre-recorded radio broadcast, apparently transmitted by a military blockade near Manchester. The broadcast claims the soldiers have "the answer to infection" and invite any survivor to attempt reaching their haven. The survivors board Frank's cab in search of the signal source, and throughout the trip they bond with one another in various situations. When the four reach the deserted blockade, Frank is infected when a drop of blood from a dead body falls into his eye. As he succumbs, he is killed by the soldiers who arrive and take the rest to a fortified mansion under the command of Major Henry West (Christopher Eccleston).
West shows the group that he keeps an infected soldier, Jim Mailer, chained in the back yard, demonstrating that his "answer to infection" entails waiting for the infected to starve to death while recruiting survivors to rebuild society. However, Jim discovers that part of the "answer" also includes luring female survivors into sexual slavery, to rebuild the population with West's platoon. Jim attempts to escape with Selena and Hannah but is captured by the soldiers, along with the dissenting Sergeant Farrell (Stuart McQuarrie). During their imprisonment, Farrell declares West has gone mad and speculates that only Great Britain has been infected and is now quarantined.
The next day, Selena and Hannah are dressed in bouffant gowns, in preparation for being gang-raped, as two soldiers lead Jim and Farrell to be executed. When his escorts quarrel after killing Farrell, Jim escapes and spies NATO aircraft conducting aerial reconnaissance, revealing that the virus has only spread through the UK and has not reached mainland Europe. After luring West and another soldier, Private Davis, to the blockade, Jim ambushes and kills Davis with a crowbar and sabotages their jeep. Jim runs back to the mansion where he releases Mailer. As Mailer attacks most of the platoon, Private Jones attempts to escape but is impaled by Jim's bayonet. Jim finds Selena being taunted by Corporal Mitchell (Ricci Harnett) and bursts into the room. He brutally kills Mitchell, smashing his head against a wall and gouging his eyes out; Selena believes Jim is infected because of his aggressive behaviour, but she hesitates to kill him, and Jim tells her, "That was longer than a heartbeat". The two reunite with Hannah and run to Frank's cab, only for Jim to be shot by an infuriated West. After releasing West to Mailer and fleeing the mansion, Selena and Hannah rush Jim to a hospital. Jim is saved by Selena but he is once again comatose, and the group leaves Manchester.
Another 28 days later, around 61 days after the initial outbreak, Jim is shown to be recovering at a remote cottage. Downstairs, he finds Selena sewing large swaths of fabric when Hannah appears. The three rush outside and unfurl a huge cloth banner, adding the final letter to the word "HELLO" laid out on the meadow. A lone Hawker Hunter T7 jet flies over the landscape, and the infected are shown lying on roads dying of starvation. The jet flies over the three survivors waving and their distress sign while the pilot, speaking in Finnish, calls in a rescue helicopter.